#ifndef __MYFILE__
#define __MYFILE__

//加入用户级别的缓冲区，属于语言
//缓冲区的意义： 1. 为了支持格式化输出文件
//              2. 为了提高效率，在需要的时候再一起刷新
#define MEMORY_SIZE 1024
#define NOW_REFRESH 1
#define LINE_REFRESH 2
#define ALL_REFRESH 4
struct _FILE{
    int _fileno;
    //输出缓冲区的优势应该在可以一次性读入一块比较大的空间，然后再一点点用
    //char inbuffer[MEMORY_SIZE];
    //int in_pos;
    char outbuffer[MEMORY_SIZE];
    int out_pos;
   
    int flush_mode;
};

typedef struct _FILE _FILE;

_FILE* _fopen(const char* file, const char* mode);
int _fwrite(void* mesg, int sz, _FILE* pf);
int _fclose(_FILE* pf);
int _fflush(_FILE* pf);

#endif
